﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SIGCBI.Repository;
using SIGCBI.Entities;

namespace SIGCBI.Test.Administracion
{
    [TestClass]
    public class RolTest
    {
        [TestMethod]
        public void GetAllFromRoles()
        {
            RolRepository repository = new RolRepository();
            List<ROL> actual;
            actual = repository.GetAllFromRol();
            Assert.IsTrue(actual.Count > 1);
        }

        [TestMethod]
        public void GetFromRolById()
        {
            RolRepository repository = new RolRepository();
            int id = 1;
            ROL actual;
            actual = repository.GetFromRolById(id);
            Assert.IsTrue(actual.ID == 1);
        }

        [TestMethod]
        public void GetAllFromRolByDescripcion()
        {
            RolRepository repository = new RolRepository();
            var criterio = "ADMINISTRADOR";
            List<ROL> actual;
            actual = repository.GetAllFromRolByDescripcion(criterio);
            Assert.IsTrue(actual.Count >= 1);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddRol()
        {
            RolRepository repository = new RolRepository();
            var ListEsperado = (List<ROL>)repository.GetAllFromRol();
            ROL rol = new ROL()
            {
                Descripcion = "ALMACENERO",
            };
            repository.AddRol(rol);
            var ListaCTUAL = (List<ROL>)repository.GetAllFromRol();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Error ");
        }

        [TestMethod]
        public void UpdateRol()
        {
            RolRepository repository = new RolRepository();

            ROL rol = new ROL()
            {
                ID = 7,
                Descripcion = "ALMACENERO1",
            };
            repository.UpdateRol(rol);
           
            var existe = repository.GetFromRolById(7);
            Assert.IsTrue(existe.Descripcion == "ALMACENERO1");
        }

        [TestMethod]
        public void RemoveRol()
        {
            RolRepository repository = new RolRepository();
            var id = 7;
            repository.DeleteRol(id);
            var existe = repository.GetFromRolById(id);
            Assert.IsTrue(existe == null);

        }
    }
}
